# encoding:utf-8
import os

# 配置路径（用户需要修改为实际路径）
laoji_folder = r"Y:\数据工厂\已处理"  # 包含.laoji文件的文件夹
video_folder = r"Y:\数据工厂\脏数据"  # 包含视频文件的文件夹
output_bat = ".\script\move_videos.bat"  # 生成的批处理文件名

# 支持的视频扩展名（可根据需要扩展）
VIDEO_EXTENSIONS = {
    '.mp4', '.avi', '.mov', '.mkv',
    '.flv', '.wmv', '.mpg', '.mpeg'
}


def main():
    # 步骤1：构建.laoji文件名与目录的映射
    laoji_map = {}
    for root, _, files in os.walk(laoji_folder):
        for file in files:
            print(file)
            if file.lower().endswith('.laoji'):
                name = os.path.splitext(file)[0]
                laoji_map[name] = root

    # 步骤2：查找匹配的视频文件
    move_commands = [
        "@echo off",
        "chcp 65001",
        "echo 文件删除脚本",
        "echo 生成时间: %date% %time%",
        "echo.",
        "echo 将要移动以下文件:",
        "echo ----------------------"
    ]

    for root, _, files in os.walk(video_folder):
        for file in files:
            print(file)
            ext = os.path.splitext(file)[1].lower()
            if ext in VIDEO_EXTENSIONS:
                if file in laoji_map:
                    src = os.path.join(root, file)
                    dest = laoji_map[file]
                    move_commands.append(f'move /Y "{src}" "{dest}"')

    # 步骤3：生成CMD批处理文件
    if move_commands:
        with open(output_bat, 'w', encoding='utf-8') as f:
            f.write("@echo off\n")
            f.write("echo 开始移动文件...\n")
            f.write("\n".join(move_commands))
            f.write("\necho 操作完成!\npause")
        print(f"已生成批处理文件: {output_bat}")
        print("请用管理员身份运行该文件完成文件移动")
    else:
        print("没有找到需要移动的文件")


if __name__ == "__main__":
    main()
